home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_ORBit.idb / usr / freeware / doc / ORBit / idl / iop.idl.z / iop.idl
Encoding:
Text File  |  1999-07-16  |  3.7 KB  |  195 lines

  1. module IOP {
  2.     //
  3.     // Standard Protocol Profile tag values
  4.     //
  5.     typedef unsigned long ProfileId;
  6.     const ProfileId TAG_INTERNET_IOP=0;
  7.     const ProfileId TAG_MULTIPLE_COMPONENTS=1;
  8.  
  9.     struct TaggedProfile {
  10.         ProfileId tag;
  11.         sequence<octet> profile_data;
  12.     };
  13.  
  14.     //
  15.     // an Interoperable Object Reference is a sequence of
  16.     // object-specific protocol profiles, plus a type ID.
  17.     //
  18.     struct IOR {
  19.         string type_id;
  20.         sequence<TaggedProfile> profiles;
  21.     };
  22.  
  23.     //
  24.     // Standard way of representing multicomponent profiles.
  25.     // This would be encapsulated in a TaggedProfile.
  26.     //
  27.     typedef unsigned long ComponentId;
  28.     struct TaggedComponent {
  29.         ComponentId tag;
  30.         sequence<octet> component_data;
  31.     };
  32.  
  33.     typedef sequence<TaggedComponent> MultipleComponentProfile;
  34.  
  35.     const ComponentId TAG_ORB_TYPE=0;
  36.     const ComponentId TAG_CODE_SETS=1;
  37.     const ComponentId TAG_SEC_NAME=14;
  38.     const ComponentId TAG_ASSOCIATION_OPTIONS=13;
  39.     const ComponentId TAG_GENERIC_SEC_MECH=12;
  40.  
  41.     typedef unsigned long ServiceId;
  42.  
  43.     struct ServiceContext {
  44.         ServiceId context_id;
  45.         sequence<octet> context_data;
  46.     };
  47.     typedef sequence<ServiceContext> ServiceContextList;
  48.  
  49.     const ServiceId TransactionService=0;
  50.     const ServiceId CodeSets=1;
  51. };
  52.  
  53. module CONV_FRAME {
  54.     typedef unsigned long CodeSetId;
  55.  
  56.     struct CodeSetComponent {
  57.         CodeSetId native_code_set;
  58.         sequence<CodeSetId> conversion_code_sets;
  59.     };
  60.  
  61.     struct CodeSetComponentInfo {
  62.         CodeSetComponent ForCharData;
  63.         CodeSetComponent ForWcharData;
  64.     };
  65.  
  66.     struct CodeSetContext {
  67.         CodeSetId char_data;
  68.         CodeSetId wchar_data;
  69.     };
  70. };
  71.  
  72. module GIOP {
  73.     struct Version {
  74.         octet major;
  75.         octet minor;
  76.     };
  77.  
  78.     #ifndef GIOP_1_1
  79.     // GIOP 1.0
  80.     enum MsgType_1_0 {
  81.         Request, Reply, CancelRequest,
  82.         LocateRequest, LocateReply,
  83.         CloseConnection, MessageError
  84.     };
  85.     #else
  86.     // GIOP 1.1
  87.     enum MsgType_1_1 {
  88.         Request, Reply, CancelRequest,
  89.         LocateRequest, LocateReply,
  90.         CloseConnection, MessageError,
  91.         Fragment
  92.     };
  93.     #endif
  94.  
  95.     // GIOP 1.0
  96.     struct MessageHeader_1_0 {
  97.         char magic[4];
  98.         Version GIOP_version;
  99.         boolean byte_order;
  100.         octet message_type;
  101.         unsigned long message_size;
  102.     };
  103.  
  104.     // GIOP 1.1
  105.     struct MessageHeader_1_1 {
  106.         char magic[4];
  107.         Version GIOP_version;
  108.         octet flags;
  109.         octet message_type;
  110.         unsigned long message_size;
  111.     };
  112.  
  113.     // GIOP 1.0
  114.     struct RequestHeader_1_0 {
  115.         IOP::ServiceContextList service_context;
  116.         unsigned long request_id;
  117.         boolean response_expected;
  118.         sequence<octet> object_key;
  119.         string operation;
  120.         CORBA::Principal requesting_principal;
  121.     };
  122.  
  123.     // GIOP 1.1
  124.     struct RequestHeader_1_1 {
  125.         IOP::ServiceContextList service_context;
  126.         unsigned long request_id;
  127.         boolean response_expected;
  128.         octet reserved[3];
  129.         sequence<octet> object_key;
  130.         string operation;
  131.         CORBA::Principal requesting_principal;
  132.     };
  133.  
  134.     enum ReplyStatusType {
  135.         NO_EXCEPTION,
  136.         USER_EXCEPTION,
  137.         SYSTEM_EXCEPTION,
  138.         LOCATION_FORWARD
  139.     };
  140.  
  141.     struct ReplyHeader {
  142.         IOP::ServiceContextList service_context;
  143.         unsigned long request_id;
  144.         ReplyStatusType reply_status;
  145.     };
  146.  
  147.     struct SystemExceptionReplyBody {
  148.         string exception_id;
  149.         unsigned long minor_code_value;
  150.         unsigned long completion_status;
  151.     };
  152.  
  153.     struct CancelRequestHeader {
  154.         unsigned long request_id;
  155.     };
  156.  
  157.     struct LocateRequestHeader {
  158.         unsigned long request_id;
  159.         sequence<octet> object_key;
  160.     };
  161.  
  162.     enum LocateStatusType {
  163.         UNKNOWN_OBJECT,
  164.         OBJECT_HERE,
  165.         OBJECT_FORWARD
  166.     };
  167.  
  168.     struct LocateReplyHeader {
  169.         unsigned long request_id;
  170.         LocateStatusType locate_status;
  171.     };
  172. };
  173.  
  174. module IIOP {
  175.     struct Version {
  176.         octet major;
  177.         octet minor;
  178.     };
  179.  
  180.     struct ProfileBody_1_0 {
  181.         Version iiop_version;
  182.         string host;
  183.         unsigned short port;
  184.         sequence<octet> object_key;
  185.     };
  186.  
  187.     struct ProfileBody_1_1 {
  188.         Version iiop_version;
  189.         string host;
  190.         unsigned short port;
  191.         sequence<octet> object_key;
  192.         sequence<IOP::TaggedComponent> components;
  193.     };
  194. };
  195.